package com.qiniu.qiniulab.activity.video;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.DisplayMetrics;
import android.widget.LinearLayout;
import android.widget.MediaController;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.VideoView;
import com.qiniu.qiniulab.R;
import com.qiniu.qiniulab.utils.Tools;
public class AudioVideoPlayUseVideoViewActivity extends ActionBarActivity {
private VideoView videoPlayView;
private MediaController videoPlayController;
private TextView videoPlayLogTextView;
public AudioVideoPlayUseVideoViewActivity() {
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.simple_video_play_use_videoview_activity);
this.initLayout();
this.initVideoPlay();
}
private void initLayout() {
DisplayMetrics dm = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(dm);
RelativeLayout layout = (RelativeLayout) this.findViewById(R.id.videoview_fixed_layout);
int width = dm.widthPixels;
int height = width * 360 / 640;
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(width, height);
layout.setLayoutParams(layoutParams);
}
private void initVideoPlay() {
this.videoPlayController = new MediaController(this);
this.videoPlayView = (VideoView) this
.findViewById(R.id.simple_video_play_videoview);
this.videoPlayLogTextView = (TextView) this
.findViewById(R.id.simple_video_play_log_textview);
videoPlayView.setMediaController(videoPlayController);
videoPlayController.setMediaPlayer(videoPlayView);
videoPlayController.setAnchorView(videoPlayView);
final String videoName = this.getIntent().getStringExtra("VideoName");
final String adsUrl = this.getIntent().getStringExtra("AdsUrl");
final String videoUrl = this.getIntent().getStringExtra("VideoUrl");
this.setTitle(videoName);
final long startTime = System.currentTimeMillis();
//common settings
videoPlayView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
videoPlayLogTextView.append("Error, Pos" + mp.getCurrentPosition() + "\r\n");
return false;
}
});
if (!adsUrl.isEmpty()) {
///////////////// Play the ads first /////////////////////////
videoPlayView.setVideoURI(Uri.parse(adsUrl));
videoPlayView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
long duration = videoPlayView.getDuration();
long endTime = System.currentTimeMillis();
long loadTime = endTime - startTime;
videoPlayLogTextView.append("Load Ads Time: "
+ Tools.formatMilliSeconds(loadTime) + ", Duration: " + duration + "ms\r\n");
mp.start();
}
});
//////////////////Play the video then ////////////////////////
//video to play
videoPlayView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
videoPlayView.setVideoURI(Uri.parse(videoUrl));
final long startTime2 = System.currentTimeMillis();
videoPlayView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
long duration = videoPlayView.getDuration();
long endTime = System.currentTimeMillis();
long loadTime = endTime - startTime2;
videoPlayLogTextView.append("Load Video Time: "
+ Tools.formatMilliSeconds(loadTime) + ", Duration:" + duration + "ms\r\n");
mp.start();
}
});
videoPlayView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
videoPlayLogTextView.append("All Play Ends\r\n");
}
});
}
});
} else {
//video to play
videoPlayView.setVideoURI(Uri.parse(videoUrl));
final long startTime2 = System.currentTimeMillis();
videoPlayView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
long duration = videoPlayView.getDuration();
long endTime = System.currentTimeMillis();
long loadTime = endTime - startTime2;
videoPlayLogTextView.append("Load Video Time: "
+ Tools.formatMilliSeconds(loadTime) + ", Duration:" + duration + "ms\r\n");
mp.start();
}
});
videoPlayView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
videoPlayLogTextView.append("All Play Ends\r\n");
}
});
}
}
}